package com.starmark.sys.org.atomic.mapper;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.starmark.core.framework.base.SuperMapper;
import com.starmark.sys.org.api.dto.OrgElementDto;
import com.starmark.sys.org.atomic.entity.SysOrgUser;
import com.starmark.sys.org.atomic.vo.SysOrgUserPageQueryVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;


/**
 * @author starmark
 * @since 2018年3月3日 下午7:24:50
 */
@Mapper
public interface SysOrgUserMapper extends SuperMapper<SysOrgUser> {
    /**
     * 通过登陆名，查找对应的用户
     *
     * @param loginName 登陆名
     * @return 人员信息
     */
    SysOrgUser findUserByLoginName(@Param("loginName") String loginName);

    /**
     * 通过关键字查找组织信息
     *
     * @param searchKey 关键字
     * @param pageSize 分页页码
     * @return 人用基础信息
     */
    List<OrgElementDto> getOrgTreeBySearchkey(@Param("searchKey") String searchKey, @Param("pageSize") int pageSize);


    /**
     * 通过父节点，查找相关信息
     *
     * @param id 部门ID
     * @return 下级人员信息
     */
    List<OrgElementDto> getOrgTreeById(@Param("id") String id);




    /**
     * 校验用户密码是否正确
     *
     * @param userId   用户ID
     * @param password 用户密码// 暂时不加密
     * @return 是否正确
     */
    @Select("select count(1)  from sys_org_user where id=#{userId} and password=#{password} and remove=0")
    boolean checkUserPassword(@Param("userId") String userId, @Param("password") String password);



    /**
     * 查找用户信息
     * @param page 分页记录
     * @param pageQueryVo 查询
     * @return  用户信息
     */
    IPage<SysOrgUser> selectUserPage(IPage<SysOrgUser> page, @Param("pageQuery") SysOrgUserPageQueryVo pageQueryVo);

    /**
     * 更新用户密码
     * @param userId 用户ID
     * @param password 密码
     */
    @Update("update  sys_org_user set    password=#{password}  where id=#{userId}")
    void updatePwd(@Param("userId")String userId, @Param("password") String password);
}
